// 导入axios
import axios from 'axios';
import Vue from 'vue'
import Router from '../router/index.js'
// 使用vant做消息处理
import {Toast} from 'vant'
import {Dialog} from 'vant'
Vue.use(Router)
/**
 * 1.创建新的axios实例
 */
const service = axios.create({
  timeout: 360000,
})

// 设置 axios 默认请求类型
axios.defaults.headers.post['Content-Type'] = 'application/json'

/**
 * 2.请求拦截器
 */
service.interceptors.request.use(config => {
  /**
   * 配置代理地址
   */
  // config.baseURL = 'http://192.168.1.65:8201/'   // 筑友帮测试环境app打包
  // config.baseURL = 'http://47.102.129.182:8201' // 阿里云环境  景文项目
  config.baseURL = 'http://47.102.129.182:8301' // 阿里云环境 三林项目
  // config.baseURL = '/'
  /**
   * 保存token到headers
   */
  if (localStorage.getItem('token')) {
    config.headers = {
      'token': localStorage.getItem('token'),
    }
  }
  return config
},error => {
  Promise.reject(error)
})
/**
 * 3.响应拦截器
 */
service.interceptors.response.use(response => {
  if (response.data.code === 200) {
    return Promise.resolve(response.data.data)
  } else {
    Toast.fail(response.data.msg)
    return Promise.reject(response.data)
  }
},error => {
  if (error.response.data.code === 401) {
    Dialog.alert({
      message: '您的账号在其他设备登录，如果这不是您的操作，请及时修改您的登陆密码',
    }).then(() => {
      localStorage.removeItem('token')
      Router.push({
        name: 'Login'
      })
    });
  } else if (error.response.status === 429) {
    Toast.fail('请勿频繁操作')
  } else {
    Toast.fail(error.response.data.msg)
    return Promise.reject(error.response.data);
  }
 })

export default service
